Skip to content

Audit references/module.md (#3): cross-links, four content gaps, J6.1 verification#13

Merged
bcordis merged 1 commit into
developfrom
claude/audit-issue-3-module
Apr 30, 2026
Merged

Audit references/module.md (#3): cross-links, four content gaps, J6.1 verification#13
bcordis merged 1 commit into
developfrom
claude/audit-issue-3-module

Conversation

@bcordis
Copy link
Copy Markdown
Member

@bcordis bcordis commented Apr 30, 2026

Closes the module.md checklist in #3.

Summary

The audit found module.md was already current on the load-bearing patterns (dispatcher, helper, manifest, service provider) but had zero cross-references to the four shared references created during #2 (manifest.md, language-files.md, service-provider.md, install-script.md) and was missing four legitimate content topics. This PR adds the cross-links, fills the gaps, and verifies the dispatcher / service-provider patterns against joomla-cms 6.1-dev.

Cross-references to shared refs (the principle from #2)

  • Manifest XML — cross-link intro pointing to manifest.md for universal elements; the example keeps module-specific bits (client="…", <config><fields name="params">).
  • Language Files (new section) — MOD_* prefix specifics + cross-link to language-files.md.
  • Service Provider — cross-link intro pointing to service-provider.md for the universal wrapping pattern; the example keeps the module-specific ModuleDispatcherFactory / HelperFactory / Module triple.
  • Install Script (Optional) (new section) — pointer to install-script.md with the note that modules rarely need one.

Content gaps filled

  • Web Asset Manager registration from the dispatcher (new subsection) — useStyle / useScript against joomla.asset.json-resolved URIs and where to register Text::script() JS strings. Cross-references gotchas.md for URI auto-resolution and the truthy-key trap.
  • Caching (new section) — default per-instance keying, the two cases that need user attention (URL-dependent and session-state-dependent output), the absence of a public dispatcher-level cache-key hook.

J6.1 verification (continuous discipline from #11)

Why these scope choices

Test plan

  • bash scripts/validate.sh passes.
  • Verified upstream patterns against joomla-cms 6.1-dev source.
  • Manual: prompt for a module question against the skill and confirm Claude follows the breadcrumb to the shared refs (manifest.md / service-provider.md / language-files.md) when the question is universal.
  • CI validate.yml workflow green.

Generated by Claude Code

…erify

Closes the module.md checklist in #3.

Cross-references to shared refs (cross-cutting principle from #2):
- Manifest XML section: cross-link intro pointing to manifest.md for
  universal elements; example keeps module-specific bits (client=,
  <config><fields name="params">).
- New Language Files section: MOD_* prefix specifics + cross-link to
  language-files.md.
- Service Provider section: cross-link intro pointing to
  service-provider.md for the universal wrapping pattern; example
  keeps module-specific factory triple (ModuleDispatcherFactory,
  HelperFactory, Module).
- New Install Script (Optional) section: pointer to install-script.md
  with note that modules rarely need one.

Content gaps closed (flagged by audit):
- Web Asset Manager registration from the dispatcher: new subsection
  showing useStyle/useScript against joomla.asset.json-resolved URIs
  and where to register Text::script() keys, with cross-reference to
  gotchas.md for the URI-resolution and truthy-key rules.
- Caching: new section explaining default per-instance keying, the
  two cases that need user attention (URL-dependent + session-state-
  dependent output), and the absence of a public dispatcher-level
  cache-key hook.

Joomla 6.1 verification (continuous discipline from issue #11):
- Dispatcher section cites AbstractModuleDispatcher on 6.1-dev for
  constructor + getLayoutData signatures.
- Service Provider section cites mod_articles_news provider on
  6.1-dev for the factory triple.
- New Joomla 6.1 capabilities section covers PR #46772 (Versions for
  Modules / #__ucm_history) and PR #46622 (#__extensions.custom_data
  column). Both additive, no existing-code changes required.

Table of Contents rebuilt to expose all new sections and flag which
content lives in the shared references.

CHANGELOG [Unreleased] gets new sections for the additions and
verifications.
@bcordis bcordis mentioned this pull request Apr 30, 2026
11 tasks
@bcordis bcordis merged commit 0da22d3 into develop Apr 30, 2026
1 check passed
bcordis added a commit that referenced this pull request Apr 30, 2026
…stency (#17)

Surface the five shared references (manifest.md, install-script.md,
language-files.md, service-provider.md, component-router.md) in
SKILL.md's index — they were extracted in PRs #9/#13/#14/#15 and linked
from per-type files but never indexed in SKILL.md itself.

Add deferral pointers at the head of SKILL.md's Service Provider,
Language Files, Manifest XML, and Install/Update Script sections so
shared content has one canonical home and the inline component-flavored
examples are explicitly framed as type-specific.

Harmonize SKILL.md's install-script preflight example with the canonical
Log::add(..., 'jerror') pattern in install-script.md; was using
\$adapter->getParent()->abort(...) which is also valid but is the kind
of "same situation, two patterns" drift issue #6 is meant to catch.

Verified (no changes needed): per-extension service-provider /
install-script / language-files sections in component.md, module.md,
plugin.md, library.md all defer correctly to the shared references.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants